/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package serverb.persistenciaHibernate;

import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.Transaction;
import server.dominio.Cita;

/**
 *
 * @author tpaxle
 */
public class Hibernate_Cita_DAO {
    Session session = null;

    public Hibernate_Cita_DAO() {
        this.session = NewHibernateUtil.getSessionFactory().getCurrentSession();
    }


    public List<Cita> select(String cadena){
        List<Cita> lista_Cita= new ArrayList<Cita>();
        try{
            Transaction tx= session.beginTransaction();
            Query q= session.createQuery(cadena);
            lista_Cita = (List<Cita>) q.list();
        } catch (Exception e){
            e.printStackTrace();
        }
        return lista_Cita;
    }

    public Cita getCitaByID(int CitaId){
        List<Cita> lista_Cita = null;
        try {
            Transaction tx = session.beginTransaction();
            Query q = session.createQuery("from Cita where idCita_pk='"+CitaId +"'");
            lista_Cita = (List<Cita>) q.list();
        } catch (Exception e) {
            e.printStackTrace();
        }
        if(lista_Cita.size()==0)
            return null;
        else
            return lista_Cita.get(0);

    }

    public int insertCita(Cita Cita) throws SQLException, Exception{
        int resultado=0;
        Transaction tx = session.beginTransaction();
        session.save(Cita);
        tx.commit();
        resultado=1;
        
        return resultado;
    }
    public Cita findCitabyNombre(String nombre){
        List<Cita> lista_Cita = null;
        try {
            Transaction tx = session.beginTransaction();
            Query q = session.createQuery("from Cita where nombre='"+nombre +"'");
            lista_Cita = (List<Cita>) q.list();
        } catch (Exception e) {
            e.printStackTrace();
        }

        return lista_Cita.get(0);
    }

    public int deleteCita(Cita cita){
        int resultado= 0;
        Transaction tx= session.beginTransaction();
        session.delete(cita);
        tx.commit();
        resultado=1;

        return resultado;
    }
}
